public class UberweisungRunnable implements Runnable
{
	private BankKonto von;
	private BankKonto nach;
	private double betrag;

	public UberweisungRunnable(BankKonto von, BankKonto nach, double betrag)
	{
		this.von = von;
		this.nach = nach;
		this.betrag = betrag;
	}

	@Override
	public void run()
	{

		try
		{
			synchronized (von)
			{
				von.geldAbheben(betrag);				
			}
		} catch (Exception e)
		{
			throw new RuntimeException(
					"Nicht genug Geld um die Ueberweisung zu machen.");
		}
		
		synchronized (nach)
		{
			nach.setKontostand(nach.getKontostand() + betrag);			
		}

	}

}
